跳到主要内容

128 最长连续序列

https://leetcode.cn/leetbook/read/top-interview-questions-hard/xwgcuv/

cost: 19m4s

class Solution {
public:
int longestConsecutive(vector<int>& nums) {
unordered_set<int> numSet;
for (const int num : nums) {
numSet.insert(num);
}
int res = 0;
unordered_set<int> visited;
for (auto key : numSet) {
int lower = key - 1;
while (numSet.count(lower) && !visited.count(lower)) {
visited.insert(lower);
lower--;
}
int upper = key + 1;
while (numSet.count(upper) && !visited.count(upper)) {
visited.insert(upper);
upper++;
}
res = std::max(res, upper - lower - 1);
}
return res;
}
};